#ifndef WORDCOUNTER_H_
#define WORDCOUNTER_H_

#include <map>
#include <string>
#include "WellSizedVector.h"

class Aurelio {
public:
	Aurelio();
	void updateDictionarySizes (std::string);
	void printDictionary();
	void printFullDictionary();
	void clearDictionary();
	void initializeVectors();
	void updateDictionary(std::string, uint);
	

private:
	unsigned long long getNewWordHash(std::string &);
	std::map<unsigned long long, WellSizedVector> wordDictionary;;
	std::map< unsigned long long, std::list<unsigned short> > tempDictionary;
	std::string delimiters;
	std::map<unsigned long long, bool> noRepetitionHash;
	std::map<unsigned long long, uint> lastPositionHash;
};

#endif /*WORDCOUNTER_H_*/
